Discovery
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Discovery allows nodes to automatically discover and connect to available interfaces of other nodes. This enables decentralized networks where peers can dynamically find entry points without static configurations or centralized directories.cite-ref-1[1]
To enable interface discovery in RNS, set discover_interfaces = true.
To make an interface discoverable, set discoverable = yes in its definition.
Contents
Auto-connect
To auto-connect to discovered interfaces, set autoconnect_discovered_interfaces to a number greater than 0. This can be used alone or as part of a bootstrap setup. Configuration options allow fine-tuning of auto-connected interfaces.
Bootstrapping
Reticulum encourages organic growth by allowing interfaces to act as temporary bootstrap connections, discovering and auto-connecting to more suitable connections before disconnecting themselves. This helps build a more efficient network topology that favors locality and resilience.cite-ref-2[2]
To set up bootstrapping in RNS:
1. Make sure interface discovery and auto-connection are both enabled in the configuration file, with discover_interfaces = true and autoconnect_discovered_interfaces set to a number greater than 0.
2. Add one or more public interfaces to the configuration, which can be found on websites like directory.rns.recipes and rmap.world.
3. Add bootstrap_only = true to the definitions.
4. Restart rnsd for the configuration changes to take effect.
5. Run rnstatus to see which interfaces are connected, and rnstatus --discovered to see which interfaces have been discovered.
Configuration
In RNS, the following configuration options can be used to fine-tune interface discovery and auto-connection:
• interface_discovery_sources – A whitelist of identities (can be network identities) from which interfaces will be accepted (defaults to accepting interfaces from any source).
• required_discovery_value – Minimum stamp value required for a discovered interface to be accepted (defaults to 0).
• autoconnect_discovered_interfaces – Max number of discovered interfaces that should be auto-connected (defaults to 0).
• autoconnect_interface_mode – The mode to apply to auto-connected interfaces.
• autoconnect_interface_gravity – The gravity to apply to auto-connected interfaces.
• autoconnect_announces_to_internal – Same as announces_to_internal, applied to auto-connected interfaces.
Related
• network_identity – A network identity can decrypt incoming interface discovery announces that have been signed/encrypted with the same network identity. Used with interface_discovery_sources, this allows you to only discover and auto-connect to interfaces belonging to a particular network.
See also
References
cite-note-22. ↑ Bootstrapping Connectivity, Manual. a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu ↗
Reticulum concepts
Announce • Blackhole • Buffer • Channel • Destination • Discovery • Identity • Instance • Interface • Interface Access Code (IFAC) • Link • Network identity • Node • Packet • Path • Propagation node • Resource • Stamp • Transport node
Discovery
Source: Discovery.py ↗